package istar;

import istar.agent.IstarJadeAgent;
import istar.impl.ContributionLink;
import istar.impl.MeansEndLink;
import istar.impl.TaskDecompositionLink;

import java.util.List;

/**
 * @author kinder
 * @model
 */
public interface ITask extends IElement {

	public boolean getProcessed();
	
	public void setProcessed(boolean value);
	
	public Object[] getParams();
	public void setParams(Object[] params);
	
	
    //public List<TaskDecompositionLink> getMyDecompositionLinks();
    public TaskDecompositionLink getMyDecompositionLink();
    
    public List<MeansEndLink> getMeansFor();
    
    public List<ContributionLink> getContributesFor();
    
    public void setMyDecompositionLink(TaskDecompositionLink andLinks);
    
    public double getCost();
    
    public void setCost(double _cost);
    
    public boolean workable(IActor actor);
    
    public boolean viable(IActor actor);
    
    public boolean believiable(IstarJadeAgent agent);
    
    public double believiability(IstarJadeAgent agent);
    
   //public boolean perform(Object[] params);
    public boolean perform(IstarJadeAgent agent);
    
    public int getContributionScore();
    
}
